package com.cxh.rmsq.db.model

import com.cxh.rmsq.wx.WxPayBean
import java.io.Serializable

/**
 * author：haomeng
 * on：2025/1/7
 * created by： 诚信华
 * describe:
 */
data class MineBean(
    val id: Int = 0,
    val sex: Int = 0,
    val point: Int = 0,
    val age: Int = 0,
    val experience: Int = 0,
    var vipLevel: Int = 0,
    val nickname: String? = null,
    val vipExpirationTime: Long = 0,
    var avatar: String? = null,
    val mobile: String? = null,
    val birthday: String? = null,
    val constellation: String? = null,
    val address: String? = null,
    val loginIpLoacationName: String? = null,
    val highSchool: String? = null,
    val industry: String? = null,
    val provinceCode: String? = null,
    val provinceName: String? = null,
    val cityName: String? = null,
    val cityCode: String? = null,
    val mbti: String? = null,
    val remark: String? = null,
    val likedCount: String? = null,
    val followerCount: String? = null,
    val isFollower: String? = null,
    val circleCount: String? = null,
    val gzCount: String? = null,
    val contentCount: String? = null,
    val skwCount: String? = null,
    val wksCount: String? = null,
    val inviteCode: String? = null,
    val inviteByCode: String? = null,
    val wxPayNum: String? = null,
    val zfbPayNum: String? = null,
    val userNum: String? = null,
    val brokerageEnabled: Boolean = false,
    val photoList: MutableList<String>? = null,
    val level: LevelBean? = null,
) : Serializable


data class LevelBean(
    val id: Int,
    val level: Int,
    val name: String,
    val icon: String,
) : Serializable

data class UnReadBean(
    val likedNoReadCount: Int,
    val followerNoReadCount: Int,
    val commentNoReadCount: Int,
)

data class AddressBean(
    val code: String,
    val name: String,
    val parentCode: String,
    val ancestors: String,
    val simpleName: String,
    val pinyin: String,
    val provinceCode: String,
    val provinceName: String,
    val lng: String,
    val lat: String,
    val remark: String,
    val regionLevel: Int,
    val sort: Int,
    val tenantId: Int,
    var isSelected: Boolean = false,
)

data class AuthenticationBean(
    val id: Int = 0,
    val userId: Int = 0,
    val createTime: Long = 0,
    val realName: String? = null,
    val idNumber: String? = null,
    val zmPhoto: String? = null,
    val fmPhoto: String? = null,
    val status: String? = null,
    val nickname: String? = null,
    val mobile: String? = null,
    val deleteds: String? = null,
) : Serializable

data class FriendShipInfos(
    val displayName: String? = null,
    val message: String? = null,
    val status: String? = null,
    val updatedAt: String? = null,
    val updatedTime: String? = null,
    val user: UserBean? = null,
) : Serializable

data class UserBean(
    val id: Int = 0,
    val nickname: String? = null,
    val region: String? = null,
    val phone: String? = null,
    val portraitUri: String? = null,
    val gender: String? = null,
    val stAccount: String? = null,
) : Serializable

data class BaseResultListBean(
    var total: Int = 0,
    var list: MutableList<CommunityContent>? = null,
)

data class CommunityContent(
    var id: Int = 0,
    var userId: Int = 0,
    var toUserId: Int = 0,
    var age: Int = 0,
    var sex: Int = 0,
    var top: Int = 0,
    var followerUserId: Int = 0,
    var dyUserId: Int = 0,
    var contentId: Int = 0,
    var circleId: Int = 0,
    var fileType: Int = 0,
    var auth: Int = 0,
    var likedCount: Int = 0,
    var commentCount: Int = 0,
    var readCount: Int = 0,
    var reportCount: Int = 0,
    var groupId: Int = 0,
    var auditStatus: Int = 0,
    var status: Int = 0,
    var version: Int = 0,
    var content: String? = null,
    var communityContent: String? = null,
    var circleName: String? = null,
    var files: String? = null,
    var ip: String? = null,
    var ipLocation: String? = null,
    var location: String? = null,
    var groupsName: String? = null,
    var nickname: String? = null,
    var hisCount: String? = null,
    var avatar: String? = null,
    var createTime: Long = 0,
    var displayTime: String? = null,
    var remark: String? = null,
    var birthday: String? = null,
    var isLiked: Int = 0,
    var isFollow: Int = 0,
    var type: Int = 0,
    var pictureDownload: Int = 0,
    var vipLevel: Int = 0,
    var vipExpirationTime: Long = 0,
    var visibleIds: MutableList<String>? = null,
)

data class BaseResultCommentListBean(
    var total: Int = 0,
    var list: MutableList<CommentChildren>? = null,
)

data class CommentChildren(
    var id: Int = 0,
    var type: Int = 0,
    var nickname: String? = null,
    var avatar: String? = null,
    var userId: Int = 0,
    var commentedUserId: Int = 0,
    var commentedNickname: String? = null,
    var contentId: Int = 0,
    var parentId: Int = 0,
    var imgUrl: String? = null,
    var content: String? = null,
    var ip: String? = null,
    var location: String? = null,
    var replyCount: Int = 0,
    var likedCount: Int = 0,
    var status: Int = 0,
    var riskDescription: String? = null,
    var isRead: Int = 0,
    var createTime: Long = 0,
    var children: MutableList<CommentChildren>? = null,
    var communityContent: String? = null,
    var fileType: Int = 0,
    var vipLevel: Int = 0,
    var files: String? = null,
    var isLiked: Int = 0,
)

data class UpdateBean(
    val id: Int = 0,
    val currentVersion: String? = null,
    val updateType: Int = 0, //1直接下载  2 网址下载  3 应用市场
    val version: String? = null,
    val intro: String? = null,
    val appSize: String? = null,
    val downloadUrl: String? = null,
    val isForce: Int = 0,
    val isPopup: Boolean = false,
) : Serializable


data class HuntBean(
    val id: Int = 0,
    val name: String? = null,
    val poolAmount: String? = null,
    val remainingPoolAmount: String? = null,
    val rewardAmount: String? = null,
    val entryFee: String? = null,
    val startDate: Long = 0,
    val endDate: Long = 0,
    val location: String? = null,
    val description: String? = null,
    val maxParticipants: String? = null,
    val contactEmail: String? = null,
    val contactPhone: String? = null,
    val status: Int = 0,//1表示active（活动进行中），0表示inactive（活动未进行或已结束
    val createTime: String? = null,
)

data class BaseResultRankListBean(
    var total: Int = 0,
    var list: MutableList<RankListBean>? = null,
    var data: RankDataBean? = null,
)

data class RankListBean(
    var userId: Int = 0,
    var nickname: String? = null,
    var avatar: String? = null,
    var currentUserAmountEarned: String? = null,

    )

data class RankDataBean(
    var amountEarned: String? = null,
    var userRank: Int = 0,
)

data class MapProgressBean(
    var orTc: String? = null,
    var zfbPayNum: String? = null,
    var wxPayNum: String? = null,
    var jlTime: String? = null,
    var sussTime: String? = null,
    var nickname: String? = null,
    var sumAmountEarned: String? = null,
    var locationRespVOList: String? = null,
    var payType: String? = null,
    var expectedAmountEarned: String? = null,
    var reviewStatus: String? = null,
    var completionStatus: String? = null,
    var fragmentIds: String? = null,
    var mapId: String? = null,
    var userId: String? = null,
    var clueId: String? = null,
    var amountEarned: String? = null,
    var id: Int = 0,
    var fragmentCount: Int = 0,
    var checkInProgressCount: Int = 0,
    var createTime: String? = null,
)

data class MapMarkersBean(
    var region: String? = null,
    var address: String? = null,
    var description: String? = null,
    var locationCode: String? = null,
    var latitude: Double? = 0.0,
    var longitude: Double? = 0.0,

    var id: Int = 0,
    var treasureHuntId: Int = 0,
    var locationNumber: Int = 0,
    var userLocationStatus: Int = 0,
    var checkInRadius: Int = 0,
    var locationName: String? = null,
)

data class ClueBean(
    var advancedList: MutableList<ClueItemBean>? = null,//高级
    var beginnerList: MutableList<ClueItemBean>? = null,//初级
    var productInfoList: MutableList<ClueItemBean>? = null,//价格列表
    var intermediateList: MutableList<ClueItemBean>? = null,//中级
)

data class ClueItemBean(
    var productName: String? = null,
    var productNo: String? = null,
    var productPrice: String? = null,
    var createTime: String? = null,
    var updateTime: String? = null,

    var id: Int = 0,
    var productType: Int = 0,
    var feeType: Int = 0,
    var level: Int = 0,
    var clueType: Int = 0,
    var status: Int = 0,
    var imgUrl: String? = null,
    var clueName: String? = null,
    var clueContent: String? = null,
    var clueLevel: String? = null,
    var isOwned: Boolean = false,
)


data class BaseResultInviteListBean(
    var total: Int = 0,
    var list: MutableList<InviteChildren>? = null,
)

data class InviteChildren(
    var inviteId: Int = 0,
    var inviteCode: String? = null,
    var inviteNickname: String? = null,
    var inviteLoginIp: String? = null,
    var inviteMobile: String? = null,
    var inviteAvatar: String? = null,
    var inviteByCreateTime: Long = 0,
    var inviteById: String? = null,
    var inviteByNickname: String? = null,
    var inviteByLoginIp: String? = null,
    var inviteByMobile: String? = null,
    var inviteByAvatar: String? = null,
    var type: Int = 0,
    var isLoginApp:  Boolean = false,
)

data class InviteExchangeBean(
    var fxCount: Int = 0,
    var yqCount: Int = 0,
    var isZh:  Boolean = false,
)

data class BaseResultJoinRecordListBean(
    var total: Int = 0,
    var list: MutableList<JoinRecord>? = null,
)

data class JoinRecord(
    var createTime: Long = 0,
    var updateTime: Long = 0,
    var huntName: String? = null,
    var userAmountEarned: String? = null,
    var currentProgressCount: String? = null,
    var currentUserAmountEarned: String? = null,
    var avatar: String? = null,
    var nickname: String? = null,
    var reviewStatus: String? = null,
    var sussTime: String? = null,
    var payType: String? = null,
    var expectedAmountEarned: String? = null,
    var completionStatus: String? = null,
    var amountEarned: String? = null,
    var mapId: String? = null,
    var fragmentIds: String? = null,
    var id: Int = 0,
    var userId: Int = 0,
    var fragmentCount: Int = 0,
    var checkInProgressCount: Int = 0,
    var resultList:MutableList<ResultListBean>? = null,
)

data class ResultListBean(
    var createTime: Long = 0,
    var updateTime: Long = 0,
    var locationName: String? = null,
    var mapId: String? = null,
    var nickname: String? = null,
    var reviewStatus: String? = null,
    var sussTime: String? = null,
    var locationCode: String? = null,
    var longitude: String? = null,
    var latitude: String? = null,
    var photoUrl: String? = null,
    var checkInLocation: String? = null,
    var id: Int = 0,
    var userId: Int = 0,
    var locationId: Int = 0,
    var progressId: Int = 0,
)

data class BaseResultJoinActivityListBean(
    var total: Int = 0,
    var list: MutableList<HuntBean>? = null,
    var data: HuntBean? = null,
)

data class PayOrderBean(
    var id: Int = 0,
    var userId: Int = 0,
    var type: Int = 0,
    var payStatus: Int = 0,

    var createTime: Long = 0,
    var updateTime: Long = 0,
    var orderNo: String? = null,
    var codeUrl: String? = null,
    var payNo: String? = null,
    var productId: String? = null,
    var productName: String? = null,
    var totalPrice: String? = null,
    var payPrice: String? = null,
    var payTime: String? = null,
    var expireTime: String? = null,
    var alipayResponse: String? = null,
    var wxPayOrderResult: WxPayBean? = null,
)

data class BaseResultOrderListBean(
    var total: Int = 0,
    var list: MutableList<OrderListBean>? = null,
)

data class OrderListBean(
    var remark: String? = null,
    var imgUrl: String? = null,
    var nickname: String? = null,
    var expireTime: Long? = 0,
    var payTime: Long? = 0,
    var createTime: Long? = 0,
    var payType: String? = null,
    var payPrice: String? = null,
    var totalPrice: String? = null,
    var productName: String? = null,
    var payNo: String? = null,
    var orderNo: String? = null,

    var id: Int = 0,
    var userId: Int = 0,
    var type: Int = 0,
    var productId: Int = 0,
    var payStatus: Int = 0,
    var payWay: Int = 0,
)

data class ProgressBean( //completionStatus   wxPayNum   zfbPayNum
    var zfbPayNum: String? = null,
    var wxPayNum: String? = null,
    var completionStatus: Int = 0,
)

data class ProductInfoBean(
    var findProductInfo: MutableList<FindProductBean>? = null,
    var vipPrivileges: MutableList<VipPrivilegesBean>? = null,
    var vipPrivilegesNumber: Int = 0,
    var vipExpirationTime: Long = 0,
    var isOpenVip: Boolean = false,
)

data class FindProductBean(
    var productNo: String? = null,
    var productName: String? = null,
    var actualPrice: Double =0.00,
    var originalPrice: Double = 0.00,
    var vipLevel: Int = 0,
    var durationMonths: Int = 0,
    var productType: Int = 0,
    var status: Int = 0,
    var id: Int = 0,
)
data class VipPrivilegesBean(
    var id: Int = 0,
    var vipLevel: Int = 0,
    var constraintType: Int = 0,
    var status: Int = 0,
    var isOpen: Int = 0,
    var type: Int = 0,
    var privilegeName: String? = null,
    var privilegeIcon: String? = null,
    var summary: String? = null,
    var details: String? = null,
    var permissionKey: String? = null,
    var usageLimit: String? = null,
)

data class BaseResultPayListBean(
    var total: Int = 0,
    var list: MutableList<PayListBean>? = null,
)

data class PayListBean(
    var id: Int = 0,
    var busType: Int = 0,
    var type: Int = 0,
    var payCode: String? = null,
    var payNo: String? = null,
    var payPrice: String? = null,
    var payTime: Long = 0,
    var remark: String? = null,
    var payContent: String? = null,
    var createTime: String? = null,
)
